package com.song.threadpool;

import java.util.HashSet;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
 * @Author Klys
 * @Date 2023/6/27 17:53
 * @Description
 * @Version 1.0
 */
public class ThreadPoolExecutorDemo {

    public static void main(String[] args) {
        // 实例化一个线程池
        ThreadPoolExecutor executor = new ThreadPoolExecutor(
                3,
                10,
                60,
                TimeUnit.SECONDS,
                new ArrayBlockingQueue<>(20));
        // 使用线程池执行一个任务
        executor.execute(() -> {
            // Do something
            System.out.println("执行任务");
        });
        // 关闭线程池,会阻止新任务提交，但不影响已提交的任务
        executor.shutdown();
        // 关闭线程池，阻止新任务提交，并且中断当前正在运行的线程
        executor.shutdownNow();
    }
}
